Using current computing devices, it is frequently desirable for the users of these devices to communicate with one another. For example, users may desire to send short communications or messages to one another when both are logged in to the Internet. The users may use these messages to communicate any of a variety of information, such as details about their day, questions about homework, details ii about boyfriends/girlfriends, information regarding computer games, just to chat, etc.
In order for such online messaging to occur, information regarding the users is typically maintained, such as whether a particular user is logged in to the Internet or not (allowing messages to be sent only to users logged in to the network). One problem presented with maintaining such information (e.g., whether the user is logged in) is how to get the information to the appropriate users. One solution is to keep a TCP/IP (Transmission Control Protocol/Internet Protocol) connection open between each of the user's devices and the server(s). However, such constant TCP/IP connections require a significant amount of overhead, thereby increasing the number of central servers that must be used. Another solution is to have each client device repeatedly query the central server(s) for any new information. However, such continual querying results in a significant number of requests and responses for which there is no new information (e.g., the user is still logged in, so an indication that the user is no longer logged in need not be sent).
The presence and notification system for maintaining and communicating information described below solves these and other problems.